/**
 * 武汉天瑞兴科技有限公司
 */
package com.adds.lvds.dao.impl.organize;

import java.util.List;
import java.util.Map;

import com.adds.lvds.model.organize.SysOrgInfo;
import com.adds.lvds.model.organize.SysOrgUser;
import com.adds.lvds.model.organize.SysUserInfo;

/**
 *项目名称 ：lvds-web-dao
 *@author zhangjian
 *@time 2016-8-16下午4:49:45
 */
public interface OrganizeInfoMapper {
	/**
	 * 根据条件检索获取部门数据
	 * @param map
	 * @return
	 * @throws Exception
	 */
   public List<SysOrgInfo> findSysOrgInfoByCondition(Map<String,Object> map)throws Exception;
	
	/**
	 * 查询当前机构及包含的成员和下级机构
	 * @param String
	 * @return
	 */
	public SysOrgInfo querySysOrgInfoOnlyByOrgId(String org_id)throws Exception;
	/**
	 * 根据条件获取组织树对象数据
	 * @param map
	 * @return
	 */
	public SysOrgInfo findSysOrgInfoByMap(Map<String,Object> map)throws Exception;
	/**
	 * 查询当前机构及包含的成员和下级机构
	 * @param String
	 * @return
	 */
	public SysOrgInfo findSysOrgAndUserByOrgId(String org_id)throws Exception;
	
	/**
	 * 查询当前机构及下级机构 
	 * @param String
	 * @return
	 */
	public SysOrgInfo findCurrentOrgAndChildOrgs(String org_id)throws Exception;
	/**
	 * 查询当前机构及包含的成员
	 * @param String
	 * @return
	 */
	public SysOrgInfo findOrgUserByOrgId(String org_id)throws Exception;
	/**
	 * 查询下级机构 通过parent_org_id
	 * @param String
	 * @return
	 */
	public List<SysOrgInfo> findChildOrgByParentOrgId(String parent_org_id)throws Exception;
	/**
	 * 根据org_id查询机构下人员数量
	 * @param java.lang.Integer
	 * @return
	 */
	public int getUserNumByOrgId(int org_id)throws Exception;
	/**
	 * 根据条件获取组织下的所有数据
	 * @param map
	 * @return
	 */
	public List<SysOrgInfo> getSysOrgInfoByMap(Map<String,Object> map)throws Exception;
	/**
	 * 通过parent_org_id获取与该数值相同的parent_org_id的所有信息
	 * @param parent_org_id
	 * @return
	 */
	public List<SysOrgInfo> findSysOrgByParentId(String parent_org_id)throws Exception;
	/**
	 * 根据条件查询返回树形结构列表数据
	 * @param map
	 * @return
	 * @throws Exception
	 */
	public List<SysOrgInfo> queryTreeOrgByMap(Map<String,Object> map)throws Exception;
	/**
	 * 录入组织数据
	 * @param sysOrgInfo
	 */
	public void insertSysOrgInfo(SysOrgInfo sysOrgInfo)throws Exception;
	/**
	 * 批量插入数据
	 * @param list
	 * @throws Exception
	 */
	public void insertBatchSysOrgInfo(List<SysOrgInfo> list)throws Exception;
	/**
	 * 删除机构表全部数据
	 * @throws Exception
	 */
	public void truncateTableSysOrg()throws Exception;
	/**
	 * 删除该节点的子节点
	 * @param parentId
	 */
	public void deleteByParentId(String parentId)throws Exception;
	
	/**
	 * 编辑组织数据
	 * @param sysOrgInfo
	 */
	public void updateSysOrgInfo(SysOrgInfo sysOrgInfo)throws Exception;
	/**
	 * 删除组织数据
	 * @param map
	 */
	public void deleteSysOrgInfo(String org_id)throws Exception;
	/**
	 * 通过org_id获取用户实体SysUserInfo
	 * @param org_id
	 * @return
	 */
	public List<SysUserInfo> findEmpIdByOrgId(String org_id)throws Exception;
	/**
	 * 添加信息
	 * @param sysOrgUser
	 */
	public void insertSysOrgUser(SysOrgUser sysOrgUser)throws Exception;
	/**
	 * 批量插入
	 * @param list
	 * @throws Exception
	 */
	public void insertBatchSysOrgUser(List<SysOrgUser> list)throws Exception;
	/**
	 * 根据条件检索 SysOrgUser 表的数据
	 * @param map
	 * @return
	 */
	public List<SysOrgUser> findSysOrgUserByMap(Map<String,Object> map)throws Exception;
	
}
